/*
* Copyright (C) 1997-2001 Id Software, Inc.
* 
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option) any later
* version.
* 
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE.
* 
* See the GNU General Public License for more details.
* 
* You should have received a copy of the GNU General Public License along with
* this program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place - Suite 330, Boston, MA 02111-1307, USA.
*  
*/

// Created on 14.01.2004 by RST.
// $Id: server_t.java,v 1.2 2004/09/22 19:22:12 salomo Exp $
using System;
using Defines = Suake2.UI.Defines;
using cmodel_t = Suake2.UI.game.cmodel_t;
using entity_state_t = Suake2.UI.game.entity_state_t;
using sizebuf_t = Suake2.UI.qcommon.sizebuf_t;
namespace Suake2.UI.server
{
	
	public class server_t
	{
		private void  InitBlock()
		{
			configstrings = new System.String[Defines.MAX_CONFIGSTRINGS];
			baselines = new entity_state_t[Defines.MAX_EDICTS];
			multicast_buf = new sbyte[Defines.MAX_MSGLEN];
		}
		
		public server_t()
		{
			InitBlock();
			models = new cmodel_t[Defines.MAX_MODELS];
			for (int n = 0; n < Defines.MAX_MODELS; n++)
				models[n] = new cmodel_t();
			
			for (int n = 0; n < Defines.MAX_EDICTS; n++)
				baselines[n] = new entity_state_t(null);
		}
		
		internal int state; // precache commands are only valid during load
		
		internal bool attractloop; // running cinematics and demos for the local system
		// only
		
		internal bool loadgame; // client begins should reuse existing entity
		
		internal int time; // always sv.framenum * 100 msec
		
		internal int framenum;
		
		internal System.String name = ""; // map name, or cinematic name
		
		internal cmodel_t[] models;
		
		//UPGRADE_NOTE: The initialization of  'configstrings' was moved to method 'InitBlock'. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1005'"
		internal System.String[] configstrings;
		
		//UPGRADE_NOTE: The initialization of  'baselines' was moved to method 'InitBlock'. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1005'"
		internal entity_state_t[] baselines;
		
		// the multicast buffer is used to send a message to a set of clients
		// it is only used to marshall data until SV_Multicast is called
		internal sizebuf_t multicast = new sizebuf_t();
		
		//UPGRADE_NOTE: The initialization of  'multicast_buf' was moved to method 'InitBlock'. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1005'"
		internal sbyte[] multicast_buf;
		
		// demo server information
		//UPGRADE_TODO: Class 'java.io.RandomAccessFile' was converted to 'System.IO.FileStream' which has a different behavior. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1073_javaioRandomAccessFile'"
		internal System.IO.FileStream demofile;
		
		internal bool timedemo; // don't time sync
	}
}